# RUN: llvm-mc -triple=aarch64 -mattr=+all -disassemble %s 2>&1 | FileCheck %s

## aes
# CHECK: aese v0.16b, v1.16b
[0x20,0x48,0x28,0x4e]

## ete
# CHECK: mrs x0, TRCRSR
[0x00,0x0a,0x31,0xd5]

## fp16fml
# CHECK: fmlal v0.2s, v1.2h, v2.2h
[0x20,0xec,0x22,0x0e]

## armv8.2a ras
# CHECK: mrs x0, ERRIDR_EL1
[0x00,0x53,0x38,0xd5]

## armv8.5a mte
# CHECK: irg x0, x1
[0x20,0x10,0xdf,0x9a]

## armv8.5a rand
# CHECK: mrs x0, RNDR
[0x00,0x24,0x3b,0xd5]

## armv8.6a matmul
# CHECK: smmla v1.4s, v16.16b, v31.16b
[0x01,0xa6,0x9f,0x4e]

## armv8.8a-hbc
# CHECK: bc.eq #4
[0x30,0x00,0x00,0x54]

## armv9a rme
# CHECK: mrs x0, MFAR_EL3
[0xa0,0x60,0x3e,0xd5]

## predres (to make sure sysreg aliases work)
# CHECK: cfp rctx, x0
[0x80,0x73,0x0b,0xd5]

## predres2 (sysreg alias implementation is different from predres)
# CHECK: cosp rctx, x0
[0xc0,0x73,0x0b,0xd5]

## sme
# CHECK: addha za0.s, p0/m, p0/m, z0.s
[0x00,0x00,0x90,0xc0]

## smef64
# CHECK: fmopa za0.d, p0/m, p0/m, z0.d, z0.d
[0x00,0x00,0xc0,0x80]

## smei64
# CHECK: addha za0.d, p0/m, p0/m, z0.d
[0x00,0x00,0xd0,0xc0]

## sme2
# CHECK: add { z0.h, z1.h }, { z0.h, z1.h }, z0.h
[0x00,0xa3,0x60,0xc1]
